home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Language/OS - Multiplatform Resource Library
/
LANGUAGE OS.iso
/
e
/
amigae21
/
amigae.txt
next >
Wrap
Text File
|
1993-07-06
|
7KB
|
171 lines
From Informatik.Uni-Dortmund.DE!Germany.EU.net!mcsun!uunet!paladin.american.edu!howland.reston.ans.net!sol.ctr.columbia.edu!The-Star.honeywell.com!umn.edu!csus.edu!ucdavis!toadflax.cs Mon Jan 18 11:38:28 1993
Article: 242 of comp.sys.amiga.announce
Path: Informatik.Uni-Dortmund.DE!Germany.EU.net!mcsun!uunet!paladin.american.edu!howland.reston.ans.net!sol.ctr.columbia.edu!The-Star.honeywell.com!umn.edu!csus.edu!ucdavis!toadflax.cs
From: WOUTER@ALF.LET.UVA.NL (Wouter van Oortmerssen)
Newsgroups: comp.sys.amiga.announce
Subject: E programming language Compiler now available
Message-ID: <21400@ucdavis.ucdavis.edu>
Date: 15 Jan 93 18:14:38 GMT
Sender: usenet@ucdavis.ucdavis.edu
Reply-To: WOUTER@ALF.LET.UVA.NL (Wouter van Oortmerssen)
Followup-To: comp.sys.amiga.misc
Lines: 153
Approved: zerkle@cs.ucdavis.edu
Message-Number: 320
ANNOUNCEMENT:
For release as of today
+-----------------------------------------------+
| |
| Amiga E v2.1 |
| Compiler for The E Language |
| By Wouter van Oortmerssen |
| |
+-----------------------------------------------+
E is a procedural higher programming language, mainly influenced by
languages such as C and Modula2. It is an all-purpose programming language,
and the Amiga implementation is specifically targeted at programming
system applications.
Amiga E is a compiler written in assembly (support utilities are all
written in E), that offers enough power to enable (semi-)proffesional
as well as other programmers to produce high quality applications.
The major features of the language/this implementation include:
- Compilation speed of 10.000 to 35.000 lines/minute on a 7mhz Amiga 500,
25.000 to 85.000 l/m on a 14mhz Amiga 1200 (both _without_ fastram).
Faster than any of it's commercial opponents
- Produces small and fast executables from sourcecode in one go: linker,
assembler and other program modules integrated into the compiler.
Very fast turnaround times even when running from your own editor.
- True Inline Assembly with identifier sharing: a complete assembler
has been build in to the language that interfaces with E in a
natural fashion. However, assembly in E is 100% optional.
- Module system for import of library definitions/constants/functions
(much like TurboPascals UNITs); a large set of pre-compiled modules
provide for great programming power and extendability.
_All_ commodore's 2.04 includes available as E modules (E is
still v1.3 compatible though).
- Large amount of integrated system functions: OpenW(), OpenS(),
Gadget(), WriteF(), TextF(), and numerous string/list/IO functions.
For just about any task there's a large library of functions to
make life easier.
- All librarycalls of Exec, Dos, Intuition and Graphics of 2.04
integrated as system functions into the compiler: call them without
opening the library or including files. All other libraries accessible too.
- Flexible and powerfull "type" system: one basic non-complex 32bit
LONG variable, and datatypes ARRAY, STRING, LIST and OBJECT,
code-security and generallity through low-level polymorphism.
- LISP functionality, functions like: Eval(), ForAll(), Exists()
Implement algorithms that would require lambda-functions.
- immediate lists, typed lists
Build complex data structures with all sort of data directly
in expressions, make TagLists, structs, vararg function calls
on the fly, like: [1,2,3] is a list. For example, this is a _complete_
program that pops up a requester in E, with the command line
arguments as text, and returns 0 or WARN to dos, depending on the
selection:
PROC main() RETURN EasyRequestArgs(0,[20,0,0,arg,'ok|cancel'],0,NIL)*5
lists provide for a compact, clear and powerfull style of programming.
- exception handling a la ADA
provide handlers on all kinds of levels in programs, define
automatic exception raising for often used functions like
memory allocations, and implement complex resource allocation
schemes with ease through recursive calls of handlers.
- compiles compact small programs with SMALL code/data model and large
applications with LARGE model in seconds.
the compiler processes sources of 100k and more faster than linkers
for other systems do, and generates quite good code along the way.
- Managable development system: one executable (the compiler/assembler/
linker) and optionally a set of Module files is all you will need.
Negative points:
- some features not (yet) implemented, like: OOP, creation of own modules,
sourcelevel debugger/interface builder etc.
- *very* memory hungry: you're advised to have a minimum memory of 1 meg.
- no 020/030/881 specific code-generation (yet).
much of these "missing features" are scheduled for later versions.
To show what E looks like, here's a complete source code that pops up
the Asl.Library filerequester:
/* AslDemo.e, somewhat shortened */
MODULE 'Asl', 'libraries/Asl'
PROC main()
DEF req:PTR TO filerequestr
IF aslbase:=OpenLibrary('asl.library',37)
IF req:=AllocFileRequest()
IF RequestFile(req) THEN WriteF('File: "\s" in "\s"\n',req.file,req.dir)
FreeFileRequest(req)
ENDIF
CloseLibrary(aslbase)
ENDIF
ENDPROC
To get Amiga E v2.1,
- wait for it to appear on the new fishes (any time now)
- get it via FTP. it should be on:
wuarchive.wustl.edu
systems/amiga/incoming/programming
systems/amiga/programming
amiga.physik.unizh.ch
amiga/new
the files must be something like:
AmigaE21.lha (207526 bytes)
AmigaE21.readme
NOTE WELL: accidentally, a version of 2.1 that contains a small bug
in the exception-handling routines is also on some
FTP sites. when up or downloading, see to it that you
get the version of --> 207526 <-- bytes
if, for some reason you want to contact me:
(preferably the first address)
Wouter@alf.let.uva.nl (E-programming support)
or: Wouter@mars.let.uva.nl (personal)
--
Read all administrative posts before putting your post up. Mailing
list: announce-request@cs.ucdavis.edu. Comments to zerkle@cs.ucdavis.edu.
MAIL ALL COMP.SYS.AMIGA.ANNOUNCE ANNOUNCEMENTS TO announce@cs.ucdavis.edu.